namespace bga
{

template< typename T >
Point2<T>::Point2() : Tuple<2,T>()
{

}

template< typename T >
Point2<T>::Point2(const Point2& point2) : Tuple<2,T>(point2)
{

}

template< typename T >
Point2<T>::Point2(T x, T y)
{
    this->arrayValues[0] = x;
    this->arrayValues[1] = y;
}

template< typename T >
Point2<T>::~Point2()
{

}

template< typename T >
void Point2<T>::setXY(T x, T y)
{
    this->arrayValues[0] = x;
    this->arrayValues[1] = y;
}

template< typename T >
Point2<T>& Point2<T>::operator=(const Point2& point2)
{
    Tuple<2, T>::operator=(point2);

    return *this;
}

template< typename T >
T Point2<T>::getX() const
{
    return this->arrayValues[0];
}

template< typename T >
T Point2<T>::getY() const
{
    return this->arrayValues[1];
}

}
